// 引入 Request
import Request from './index.js'
import store from '../store/index'

// 设置 通用的 baseUrl 以及 header
// export let baseUrl = 'https://test.10motor.com/' //测试服务器
// export let upUrl = 'https://test.10motor.com/api/upload_file' //测试服务器

export let baseUrl = 'https://www.toshuai.com/' //测试服务器
export let upUrl = 'https://www.toshuai.com/api/upload_file' //测试服务器

export let txKey = 'ZWEBZ-R7N3U-BJSVH-4TCR3-66MDQ-S3FDJ'

// #ifdef H5
baseUrl = ''
// #endif
const config = {

	baseUrl: baseUrl,
	header: {
		"content-type": "application/json;"
	}
}
//  header: { "content-type": "application/json;charset=UTF-8" }
// 设置自己的请求拦截器，必须加上 `async`
// 请求前的拦截，比如是否登录/过期/刷新token/...
const reqInterceptor = async (options) => {
	// 微信静默登录 不等于-1说明存在
	// if (options.url.indexOf('/oauth/token') !== -1) {
	//     options.header['Authorization'] = "Basic Y29uc3VtZXI6Y29uc3VtZXI="
	// }

	let token = store.state.user_token;
	//不是下列接口的话就带上token
	if ((options.url.indexOf('/api/wechat/getOpenid') === -1) || (options.url.indexOf('/api/wechat/login') === -
			1)) {
		// debugger
		options.header['token'] = `${token}`
	}



	// 必须返回一个 Object
	// 拦截请求：return {mypReqToCancel: true, ...}
	// TODO: 添加任意拦截逻辑
	return options
}

// 设置自己的响应拦截器
// 统一对返回的数据进行整理，方便接口统一使用
// conf是您api的options信息，一般情况下您只需要用到您自定义的标记字段

const resInterceptor = (response, conf = {}) => {
	// if(store.state.debug){
	//     console.log(response,'测试环境模式，响应拦截器数据')
	// }
	// console.log(response, '测试环境模式，响应拦截器数据');

	if (response.mypFail) {
		uni.hideLoading();
		uni.showToast({
			title: '服务器异常，请稍后再试',
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response)
	}
	// 必须返回你需要处理的数据，将会进入resolve（then中处理）
	// 如果需要reject，需要设置mypReqToReject:true，还可以携带自己定义的任何提示内容（catch中处理）
	// uni.request进入fail也会进入该拦截器（为了统一处理逻辑），这个时候的response参数为{mypFail: true, response: fail info}。fail时不管返回啥，都进入reject(catch)
	if (response.statusCode == 500) {
		uni.hideLoading();
		uni.showToast({
			title: '服务器错误，请稍后再试',
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response)
	} else if (response.statusCode == 401) { //登录失效或者未登录
		uni.hideLoading();
		uni.removeStorageSync('vuex_token');
		// this.user_token
		// uni.showToast({
		// 	title: '未登录，请登录！',
		// 	icon: 'none',
		// 	duration: 1500,
		// 	success: () => {
		// 		return uni.showToast({
		// 			title: '未登录，请登录！',
		// 			duration: 2000,
		// 			icon: 'none',
		// 			success: () => {
		// 				setTimeout(() => {
		// 					uni.navigateTo({
		// 						url: '/pages/login/login'
		// 					});
		// 				}, 1500);
		// 			}
		// 		});

		// 	}
		// })
		return Promise.reject(response)
	} else if (response.statusCode !== 200) {

		uni.hideLoading();
		uni.showToast({
			title: '服务器开小差了～',
			icon: 'none',
			duration: 2000
		})
		return Promise.reject(response)
	}

	if (response.data.code == 'undefined' || response.data.code == undefined) {
		response.data = JSON.parse(response.data)
	}
	if (response.data.code != 1) {
		uni.hideLoading();
		// console.log(response, '接口code不等于200的response')
		uni.showToast({
			title: response.data.msg,
			icon: 'none',
			duration: 2000
		})
		return response.data
		// return Promise.reject(response.data)
	}
	return response.data
}

// 实例化请求器
// 您可以根据需要实例化多个请求器
const req = new Request(config, reqInterceptor, resInterceptor)

export default req